﻿// Type: JetBrains.Application.License.ILicenseSupport
// Assembly: JetBrains.Platform.ReSharper.Shell, Version=6.0.2154.57, Culture=neutral, PublicKeyToken=1010a0d8d6380325
// Assembly location: D:\installed\JetBrains\ReSharper\v6.0\Bin\JetBrains.Platform.ReSharper.Shell.dll

using JetBrains.Annotations;
using JetBrains.Application;
using JetBrains.Util;
using JetBrains.Util.DataStructures;
using System.Collections.Generic;

namespace JetBrains.Application.License
{
  public interface ILicenseSupport
  {
    [NotNull]
    string ProductGuid { get; }

    int FreeTrialPeriod { get; }

    int FeedbackRequestPeriod { get; }

    int LeftDaysNotification { get; }

    string ProductFamily { get; }

    int Version { get; }

    IEnumerable<ProductEdition> Editions { get; }

    [NotNull]
    LicenseData CreateLicenseData(string licenseKey, string userName, string companyName);

    string GetLicenseAgreement(LicenseType licenseType);

    [CanBeNull]
    LicenseData LoadLicense(ISettingsTable settings, FileSystemPath installDir);

    void SaveLicense(LicenseData license, ISettingsTable settings);

    string GetLicenseServerEdition(ProductEdition edition);

    ProductEdition DecodeProductEdition(int editionCode, IApplicationDescriptor descriptor);
  }
}
